package org.shiwen.week12;

public class String1 {
    public static void main(String[] args) {
        String s1 = "hello";
        String s2 = "hello";
        //直接赋值的字符串会被存入常量池中，此时s1和s2指向同一个对象，是在常量池中hello存放的内存地址的值
        System.out.println(s1 == s2);
        System.out.println(s1.equals(s2));
        System.out.println(s1.equals("hello"));
        System.out.println(s1=="hello");
        //如果用==比较引用数据类型，那么比较的是两个对象的内存地址的值，但是因为都是直接赋值的字符串，所以两个对象内存地址的值是相同的
        //结果为true

//        String s3 = new String("hello");
//        System.out.println(s3 == s2);
//        System.out.println(s3.equals(s2));
//        System.out.println(s3.equals("hello"));
//        System.out.println(s3=="hello");
        //如果用==比较引用数据类型，那么比较的是两个对象的内存地址的值，但是因为s3是new出来的对象，所以两个对象内存地址的值是不同的
        //结果为false
        //equals()方法比较的是两个对象的内容，所以结果为true

//        String s4 = new String("Hello");
//        System.out.println(s4 == s1);
//        System.out.println(s4.equals(s1));
//        System.out.println(s4.equals("hello"));
//        System.out.println(s4=="hello");
//        System.out.println(s4.equalsIgnoreCase("hello"));

    }
}
